package com.itheima.commons.template;

import com.baidu.aip.face.AipFace;
import com.baidu.aip.util.Base64Util;
import com.itheima.commons.properties.AipFaceProperties;
import org.json.JSONObject;

import java.util.HashMap;

/**
 * @author 阿鹏
 * @date 2021/1/24 18:11
 */

public class AipFaceTemplate {

    private AipFaceProperties properties;

    public AipFaceTemplate(AipFaceProperties properties) {
        this.properties = properties;
    }

    /**
     * 人脸检测
     *
     * @param body 图片的字节数组
     * @return 图片中是否包含人脸
     */
    public boolean detect(byte[] body) {
        AipFace client = new AipFace(properties.getAppId(), properties.getApiKey(), properties.getSecretKey());
        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<>();
        // options.put("face_field", "age");
        // options.put("max_face_num", "2");
        // options.put("face_type", "LIVE");
        // options.put("liveness_control", "LOW");

        // 要检测的图片数据，使用百度提供的Base64Util，把图片字节数组按照base64进行编码转换
        String imageType = "BASE64";
        String image = Base64Util.encode(body);

        // 人脸检测
        JSONObject res = client.detect(image, imageType, options);

        //System.out.println(res);

        // 获取检测结果。检测成功：error_code为0；
        int errorCode = res.getInt("error_code");
        return errorCode == 0;
    }
}
